--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
scripts/ci/slsa-predicate.py legacy/win7 (159b2358) Text, 2.74 KB
T8b949e#!/usr/bin/env python3
T8b949e# SPDX-License-Identifier: 0BSD
T8b949e"""Emit a SLSA v1 provenance predicate JSON on stdout (stdin unused)."""
Tff7b72from T7ee787__future__ Tff7b72import Te6edf3annotations
Tff7b72import T7ee787json
Tff7b72import T7ee787os
Tff7b72from T7ee787datetime Tff7b72import Te6edf3UTCTb4b4b4, Te6edf3datetime
Tff7b72def Td2a8ff_source_uriTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657strTb4b4b4:
Te6edf3server Tff7b72= Tb4b4b4(
Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffGITHUB_SERVER_URLTa5d6ff"Tb4b4b4) Tff7b72or Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffGITEA_SERVER_URLTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"
Tb4b4b4)Tff7b72.Td2a8ffrstripTb4b4b4(Ta5d6ff"Ta5d6ff/Ta5d6ff"Tb4b4b4)
Te6edf3repo Tff7b72= Tb4b4b4(
Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffGITHUB_REPOSITORYTa5d6ff"Tb4b4b4) Tff7b72or Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffGITEA_REPOSITORYTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"
Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3server Tff7b72or Tff7b72not Te6edf3repoTb4b4b4:
Tff7b72return Ta5d6ff"Ta5d6ff"
Tff7b72if Te6edf3serverTff7b72.Td2a8ffstartswithTb4b4b4(Tb4b4b4(Ta5d6ff"Ta5d6ffhttps://Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffhttp://Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4:
Tff7b72return Ta5d6fffTa5d6ff"Ta5d6ffgit+Tffd700{Te6edf3serverTffd700}Ta5d6ff/Tffd700{Te6edf3repoTffd700}Ta5d6ff.gitTa5d6ff"
Tff7b72return Ta5d6fffTa5d6ff"Ta5d6ffgit+https://Tffd700{Te6edf3serverTffd700}Ta5d6ff/Tffd700{Te6edf3repoTffd700}Ta5d6ff.gitTa5d6ff"
Tff7b72def Td2a8ff_build_typeTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657strTb4b4b4:
Te6edf3custom Tff7b72= Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffPROVENANCE_BUILD_TYPETa5d6ff"Tb4b4b4)
Tff7b72if Te6edf3customTb4b4b4:
Tff7b72return Te6edf3custom
Te6edf3server Tff7b72= Tb4b4b4(
Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffGITHUB_SERVER_URLTa5d6ff"Tb4b4b4) Tff7b72or Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffGITEA_SERVER_URLTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"
Tb4b4b4)Tff7b72.Td2a8ffrstripTb4b4b4(Ta5d6ff"Ta5d6ff/Ta5d6ff"Tb4b4b4)
Te6edf3repo Tff7b72= Tb4b4b4(
Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffGITHUB_REPOSITORYTa5d6ff"Tb4b4b4) Tff7b72or Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffGITEA_REPOSITORYTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"
Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3server Tff7b72or Tff7b72not Te6edf3repoTb4b4b4:
Tff7b72return Ta5d6ff"Ta5d6ffhttps://slsa.dev/provenance/v1Ta5d6ff"
Te6edf3workflow_file Tff7b72= Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffGITHUB_WORKFLOW_FILETa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffbuild-release.ymlTa5d6ff"Tb4b4b4)
Tff7b72if Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffGITEA_SERVER_URLTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72return Ta5d6fffTa5d6ff"Tffd700{Te6edf3serverTffd700}Ta5d6ff/Tffd700{Te6edf3repoTffd700}Ta5d6ff/.gitea/workflows/Tffd700{Te6edf3workflow_fileTffd700}Ta5d6ff"
Tff7b72return Ta5d6fffTa5d6ff"Tffd700{Te6edf3serverTffd700}Ta5d6ff/Tffd700{Te6edf3repoTffd700}Ta5d6ff/.github/workflows/Tffd700{Te6edf3workflow_fileTffd700}Ta5d6ff"
Tff7b72def Td2a8ff_builder_idTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657strTb4b4b4:
Te6edf3custom Tff7b72= Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffPROVENANCE_BUILDER_IDTa5d6ff"Tb4b4b4)
Tff7b72if Te6edf3customTb4b4b4:
Tff7b72return Te6edf3custom
Te6edf3server Tff7b72= Tb4b4b4(
Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffGITHUB_SERVER_URLTa5d6ff"Tb4b4b4) Tff7b72or Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffGITEA_SERVER_URLTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"
Tb4b4b4)Tff7b72.Td2a8ffrstripTb4b4b4(Ta5d6ff"Ta5d6ff/Ta5d6ff"Tb4b4b4)
Tff7b72if Te6edf3serverTb4b4b4:
Tff7b72return Ta5d6fffTa5d6ff"Tffd700{Te6edf3serverTffd700}Ta5d6ff/actionsTa5d6ff"
Tff7b72return Ta5d6ff"Ta5d6ffhttps://gitea.io/actions/runnerTa5d6ff"
Tff7b72def Td2a8ffmainTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Te6edf3ref Tff7b72= Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffGITHUB_REFTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)
Te6edf3sha Tff7b72= Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffGITHUB_SHATa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)
Te6edf3run_id Tff7b72= Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffGITHUB_RUN_IDTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)
Te6edf3attempt Tff7b72= Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffGITHUB_RUN_ATTEMPTTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff1Ta5d6ff"Tb4b4b4)
Te6edf3workflow Tff7b72= Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffGITHUB_WORKFLOWTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)
Te6edf3started Tff7b72= Te6edf3datetimeTff7b72.Td2a8ffnowTb4b4b4(Te6edf3UTCTb4b4b4)Tff7b72.Td2a8ffstrftimeTb4b4b4(Ta5d6ff"Ta5d6ff%Ta5d6ffY-Ta5d6ff%Ta5d6ffm-Tffd700%dTa5d6ffTTa5d6ff%Ta5d6ffH:Ta5d6ff%Ta5d6ffM:Ta5d6ff%Ta5d6ffSZTa5d6ff"Tb4b4b4)
Te6edf3internal Tff7b72= Tb4b4b4{Tb4b4b4}
Tff7b72if Te6edf3workflowTb4b4b4:
Te6edf3internalTb4b4b4[Ta5d6ff"Ta5d6ffworkflowTa5d6ff"Tb4b4b4] Tff7b72= Te6edf3workflow
Te6edf3predicate Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffbuildDefinitionTa5d6ff"Tb4b4b4: Tb4b4b4{
Ta5d6ff"Ta5d6ffbuildTypeTa5d6ff"Tb4b4b4: Te6edf3_build_typeTb4b4b4(Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffexternalParametersTa5d6ff"Tb4b4b4: Tb4b4b4{
Ta5d6ff"Ta5d6ffsourceTa5d6ff"Tb4b4b4: Te6edf3_source_uriTb4b4b4(Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffrefTa5d6ff"Tb4b4b4: Te6edf3refTb4b4b4,
Ta5d6ff"Ta5d6ffrevisionTa5d6ff"Tb4b4b4: Te6edf3shaTb4b4b4,
Tb4b4b4}Tb4b4b4,
Ta5d6ff"Ta5d6ffinternalParametersTa5d6ff"Tb4b4b4: Te6edf3internalTb4b4b4,
Ta5d6ff"Ta5d6ffresolvedDependenciesTa5d6ff"Tb4b4b4: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Ta5d6ff"Ta5d6ffrunDetailsTa5d6ff"Tb4b4b4: Tb4b4b4{
Ta5d6ff"Ta5d6ffbuilderTa5d6ff"Tb4b4b4: Tb4b4b4{Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4: Te6edf3_builder_idTb4b4b4(Tb4b4b4)Tb4b4b4}Tb4b4b4,
Ta5d6ff"Ta5d6ffmetadataTa5d6ff"Tb4b4b4: Tb4b4b4{
Ta5d6ff"Ta5d6ffinvocationIdTa5d6ff"Tb4b4b4: Ta5d6fffTa5d6ff"Tffd700{Te6edf3run_idTffd700}Ta5d6ff-Tffd700{Te6edf3attemptTffd700}Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffstartedOnTa5d6ff"Tb4b4b4: Te6edf3startedTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}
Tffa657printTb4b4b4(Te6edf3jsonTff7b72.Td2a8ffdumpsTb4b4b4(Te6edf3predicateTb4b4b4, Te6edf3separatorsTff7b72=Tb4b4b4(Ta5d6ff"Ta5d6ff,Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff:Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4)
Tff7b72if Tff7b72__name__ Tff7b72== Ta5d6ff"Ta5d6ff__main__Ta5d6ff"Tb4b4b4:
Te6edf3mainTb4b4b4(Tb4b4b4)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────